Systems for sending data from one device to another device by the use of packets are well known. For example, in the Internet context, when a personal computer requests a file from a remote server, the server sends the file to the Internet, a type of communication network, as a series of packets, each packet containing part of the file. The packets typically encounter a number of routing devices during their traversal of the Internet, each device examining each packet and determining how to route the packet so that it will reach the personal computer.
More recently, systems have been developed for sending data representing audible sound from one device to another device, such as from one telephone to another telephone, by the use of packets. Each packet contains data that represents a time segment of audible sound. As a group, the packets are sometimes referred to as a “data stream” because a steady flow of packets is typically required to represent a large time period of audible sound, such as a song.
Unfortunately, these systems have limited schemes for ensuring sound quality if the communication network becomes congested. Congestion may occur if a routing device has more packets to route in a given time period than it has the capacity to route. A congested routing device typically discards some of the packets that it has to be routed and, thus, produces problems at a device that is generating audible sounds as it receives the packets, because the device is not receiving data from which to generate the audible sounds does not receive all of the data. Moreover, resending the discarded packets is probably not acceptable because they will arrive out of sequence with the other packets in the data stream. Thus, the data is time sensitive.
For sending packets containing audible sound data over the Internet, the schemes for ensuring delivery fall into two categories—prioritization and reservation. Prioritization schemes typically use an indicator in each packet to specify the relative priority of the packet. The indicator is typically set low for general data and high for audible sound data, allowing a routing device to prioritize the discarding of packets that it receives. This scheme, however, does not prioritize between packets that have similar priorities. Thus, if the packets containing audible sound data are contributing to the congestion, the routing device does not know how to resolve the conflicts between the similar priorities. Reservation schemes, on the other hand, typically entail reserving an amount of routing capacity in each intervening routing device. Thus, the packets containing audible sound data are assured of being conveyed at a specified rate. This scheme, however, requires a significant amount of overhead in reserving an appropriate amount of routing capacity at each intervening routing device and may further congest the communication network if too much capacity is reserved at the intervening routing devices or if the capacity is reserved when packets will be sent only intermittently.